package br.com.estevam.sisfin.pages;

import org.apache.tapestry5.ioc.annotations.Inject;

import br.com.estevam.sisfin.base.DefaultPage;
import br.com.estevam.sisfin.daos.interfaces.UsuarioDAO;
import br.com.estevam.sisfin.dtos.BeanSenhaDTO;
import br.com.estevam.sisfin.entities.Usuario;
import br.com.estevam.sisfin.tools.Encrypt;

public class ModifyPassword extends DefaultPage {

	private BeanSenhaDTO beanSenhaDTO;
	
	@Inject
	private UsuarioDAO usuarioDAO;

	void onSuccess(){
		Usuario u = (Usuario) usuarioDAO.findById(getVisit().getId());
		
		String passwordAtual = Encrypt.encryptMD5(beanSenhaDTO.getSenhaAtual());
		String passwordBase = u.getPassword();
		
		String passwordNovo = Encrypt.encryptMD5(beanSenhaDTO.getSenhaNovo());
		String passwordConfimar = Encrypt.encryptMD5(beanSenhaDTO.getSenhaConfirmar());
		
		if(passwordAtual.equalsIgnoreCase(passwordBase)){
			if(passwordNovo.equalsIgnoreCase(passwordConfimar)){
				u.setPassword(passwordConfimar);
				usuarioDAO.update(u);
				setMsg("A senha foi alterada com sucesso!");
			} else {
				setMsg("A senha nova não está confirmando.");
			}
		} else {
			setMsg("A senha atual não confere.");
		}
		
	}

	public BeanSenhaDTO getBeanSenhaDTO() {
		return beanSenhaDTO;
	}

	public void setBeanSenhaDTO(BeanSenhaDTO beanSenhaDTO) {
		this.beanSenhaDTO = beanSenhaDTO;
	}

}
